package com.dd.cloud.user.entity.product;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.gitee.sunchenbin.mybatis.actable.annotation.Column;
import com.gitee.sunchenbin.mybatis.actable.annotation.Table;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 收费服务产品表
 *
 * @author Lx
 * @version 1.0
 * @date 2024/1/19
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Table(comment = "收费服务产品表")
public class Product implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 收费服务产品表id
     */
    @TableId(value = "id", type = IdType.AUTO)
    @Column(isKey = true, isAutoIncrement = true)
    private Integer id;

    /**
     * 服务名称
     */
    @Column(length = 20, comment = "服务名称")
    private String title;

    /**
     * 服务类型 1月份
     */
    @Column(comment = "服务类型 1月份")
    private Integer type;

    /**
     * 服务次数 根据服务类型判断
     */
    @Column(comment = "服务次数 根据服务类型判断")
    private Integer typeNum;

    /**
     * 价格(分)
     */
    @Column(comment = "原价格(分)")
    private Integer price;

    /**
     * 优惠价格(分)
     */
    @Column(comment = "优惠价格(分)")
    private Integer discountPrice;

    /**
     * 状态 1正常使用 -1删除, 2下架
     */
    @Column(comment = "状态 1正常使用 -1删除, 2下架")
    private Integer status;

    /**
     * 创建时间
     */
    @Column(comment = "创建时间", defaultValue = "now()")
    private LocalDateTime createDate;

    /**
     * 修改时间
     */
    @Column(comment = "修改时间", defaultValue = "now()")
    private LocalDateTime updateDate;

    /**
     * 修改人id
     */
    @Column(comment = "修改人id")
    private Integer updateId;

    /**
     * 修改人类型(同登录类型)
     */
    @Column(comment = "修改人类型(同登录类型)")
    private Integer updateType;

    /**
     * 服务须知
     */
    @Column(length = 500, comment = "服务须知")
    private String notice;

    /**
     * 备注
     */
    @Column(length = 500, comment = "备注")
    private String remark;

    /**
     * 产品权限 1社会账号收费(首次购买优惠产品) 11社会账号收费 2慈善账号收费
     */
    @Column(comment = "产品权限")
    private Integer power;
}
